# main函数把爬去函数和检测函数正和到一起，更方便调用
# 在教学视频里面，老师用flas框架让用户从网页那里得到代理，就是复制粘贴
# 但是我想的是，把这个模块直接导入，直接在python里面得到代理
from IPProxyPool.core.proxy_spider.run_spiders import RunSpider
from IPProxyPool.core.proxy_test import ProxyTester
from IPProxyPool.core.db.mongo_pool import MongoProxiesPool

# 启动爬虫，但是爬完不会定时执行，立马结束
def run_spider():
    spider = RunSpider()
    spider.run()


# 启动爬虫，爬虫完成一次之后不会里面结束，先挂着进程，定时执行爬虫
def start_spider():
    RunSpider.start()


# 启动检测数据库代理，检测完结束进程
def run_tester():
    tester = ProxyTester()
    tester.run()

# 启动检测数据库代理，检测完一遍进程挂着，当时执行检测任务
def start_tester():
    ProxyTester.start()


# 返回符合条件的Proxy对象代理
def get_proxies(protocol=None, domain=None, count=0, nick_type=0):
    mongo_pool = MongoProxiesPool()
    # 此处会返回Proxy对象的列表
    proxies = mongo_pool.get_proxies(protocol, domain, count, nick_type)
    return proxies


# 从符合条件的代理中随机获取一个
def random_proxy(protocol=None, domain=None, count=0, nick_type=0):
    mongo_pool = MongoProxiesPool()
    # 此处会返回随机的一个Proxy对象
    proxies = mongo_pool.random_proxy(protocol, domain, count, nick_type)
    return proxies

# 给代理添加禁用域名
def disable_domain(ip, domain):
    mongo_pool = MongoProxiesPool()
    # 成功了返回True，失败了则False
    result = mongo_pool.disable_domain(ip, domain)
    return result
